package br.com.fafica.librarycourier.funcionario.model;

import br.com.fafica.librarycourier.RepositorioException;


public class CadastroFuncionario {
	
	private IRepositorioFuncionario funcionarios;
	
	public CadastroFuncionario(IRepositorioFuncionario repositorio){
		this.funcionarios = repositorio;
	}
	
	public void cadastrar(Funcionario funcionario) throws FuncionarioJaCadastradoException, RepositorioException{
		if (funcionario != null){
			if (!funcionario.existe(funcionario.getCodigo())){
				funcionarios.inserir(funcionario);
			} else {
				throw new FuncionarioJaCadastradoException(funcionario.getCodigo());
			}
		} else {
			throw new IllegalArgumentException();
		}
	}
	
	public void remover (String codigo) throws FuncionarioNaoEncontradoException, RepositorioException{
		funcionarios.remover(codigo);
	}

	public void atualizar (Funcionario funcionario) throws FuncionarioNaoEncontradoException, RepositorioException{
		funcionarios.atualizar(funcionario);
	}

	public Funcionario procurar(String codigo) throws FuncionarioNaoEncontradoException, RepositorioException{
		return funcionarios.procurar(codigo);
	}
	
	

}


